#ifndef __SHADOW_PAGE_TABLE_H
#define __SHADOW_PAGE_TABLE_H

#include "stdint.h"
#include "vmm.h"
#include "virtual_pit8253.h"
#include "virtual_pic8259a.h"


uint32_t phy_addr[0x8];
struct page_table_map {
    uint32_t guest_pt_phy_addr;
    uint32_t shadow_pt_virtual_addr;
};

struct shadow_pt_map {
    struct page_table_map shadow_page_table[0x50];
    int shadow_page_table_count;
};
uint32_t* find_shadow_page_table(struct vcpu* vm_struct);
uint32_t* create_shadow_page_table(struct vcpu* vm_struct);
void memory_map_G(struct vcpu* vm_struct);

void memory_map_H(struct vcpu* vm_struct);

#endif